<template>
  <div class="app">
    <div v-if="isShowEdit">
      <input type="text" v-model="editValue" ref="inp" />
      <button>确认</button>
    </div>
    <div v-else>
      <span>{{ title }}</span>
      <button @click="editFn">编辑</button>
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      title: '大标题',
      isShowEdit: false,
      editValue: '',
    }
  },
  methods: {
    editFn() {
      this.isShowEdit = true
      // $nextTick可以保证dom更新完成之后在操作(回调函数中写的代码,回调函数一定要用箭头函数)
      // this.$nextTick(()=>{
      //   this.$refs.inp.focus()
      // })

      // !  微任务(Promise实例)  > dom更新  > 宏任务(script,网络请求,事件，定时器，演示器)
      setTimeout(()=>{
        this.$refs.inp.focus()
      })

    },
  },
}
</script>

<style>
</style>